package cn.asura.mapper;

import cn.asura.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Map;

/**
 * UserMapper 接口
 * @author chen
 */
@Mapper
public interface UserMapper {
    /**
     * 根据 email 和 pwd 从数据库中查询
     * @param email email
     * @param pwd pwd
     * @return 用户
     */
    User getUserByEmailAndPwd(@Param("email") String email,@Param("pwd") String pwd);

    /**
     * 根据 id 查询 user
     * @param id id
     * @return user
     */
    User getUserById(int id);

    /**
     * 添加 user
     * @param map map
     * @return 受影响行数
     */
    int addUser(Map<String, Object> map);

    /**
     * 更新 user
     * @param user user
     * @return 受影响行数
     */
    int updateUser(User user);

    /**
     * 根据用户 id 更新密码
     * @param id id
     * @param pwd new password
     * @return 受影响行数
     */
    int updatePwd(@Param("id") int id, @Param("pwd") String pwd);

    /**
     * 通过 email 查询用户
     * @param user user
     * @return user
     */
    User findUserByEmail(User user);
}
